<%

# BioCatalogue: app/views/layouts/_head_tabber_pre.html.erb
#
# Copyright (c) 2009, University of Manchester, The European Bioinformatics
# Institute (EMBL-EBI) and the University of Southampton.
# See license.txt for details

%>

<%#
	# The following code does helps in remembering which tab the user was in after redirects etc.
	# It is based on code from the tabber website (http://www.barelyfitz.com/projects/tabber/).
%>

<script type="text/javascript">

/* Optional: Temporarily hide the "tabber" class so it does not "flash"
   on the page as plain HTML. After tabber runs, the class is changed
   to "tabberlive" and it will appear.
*/
/*document.write('<style type="text/css">.tabber{display:none;}<\/style>');*/

/*==================================================
  Set the tabber options (must do this before including tabber.js)
  ==================================================*/
var tabberOptions = {
	'manualStartup':true,

  'cookie':"tabber", /* Name to use for the cookie */

  'onLoad':function(argsObj)
  {
    // Only use cookie if anchor has not been explicitly specified in the URL
		// AND the use_tabs_cookie variable is set to true.

		var useCookie = <%= get_and_reset_use_tab_cookie_param_value -%>;

		var t = argsObj.tabber;

		/* Optional: Add the id of the tabber to the cookie name to allow
			 for multiple tabber interfaces on the site.  If you have
			 multiple tabber interfaces (even on different pages) I suggest
			 setting a unique id on each one, to avoid having the cookie set
			 the wrong tab. */
		if (t.id) {
			t.cookie = t.id + "_" + "tabber";
		}

		if ((window.location.hash == null || window.location.hash == "") && useCookie == true) {

	    var i;

			/* If a cookie was previously set, restore the active tab */
			i = parseInt(getCookie(t.cookie));
			if (isNaN(i)) {
				return;
			}
			t.tabShow(i);

			// Set anchor
			var tabDomId = t.tabs[i].div.id;
			setTabAnchor(tabDomId);
		}
  },

  'onClick':function(argsObj)
  {
    // Set cookie
		var c = argsObj.tabber.cookie;
    var i = argsObj.index;
    setCookie(c, i);

		// Set anchor
		var tabDomId = argsObj.tabber.tabs[argsObj.index].div.id;
		setTabAnchor(tabDomId);
  }
};

/*==================================================
  Tab Anchor functions
  ==================================================*/
function setTabAnchor(tabDomId) {
	if (tabDomId && tabDomId != "") {
		window.location.hash = "#" + tabDomId.substr(4);
	} else {
		window.location.hash = "";
	}
}

/*==================================================
  Cookie functions
  ==================================================*/
function setCookie(name, value, expires, path, domain, secure) {
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}
function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

</script>
